<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Persona_lst( $this );

	class Persona_lst extends Lst
	{
	function Persona_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}
	function updateTag()
		{
			$ncPersona = getParam( 'ncPersona' );
			$ncRotulo = getParam( 'ncRotulo' );
			$cNewItem = getParam( 'newItem' );
			if ( $cNewItem )
			{
				$ncRotulo = $this->oDatabase->nextKey( "gtRotuloPersona", "ncRotulo" );
				$bOk = $this->oDatabase->insert( "gtRotuloPersona",
										"ncRotulo", $ncRotulo, "cdRotulo", $cNewItem );
			}
			if ( $ncPersona && $ncRotulo )
			{
				$bOk = $this->oDatabase->insert( "gtPersonaRotulo",
										"ncRotulo", $ncRotulo, "ncPersona", $ncPersona );
				$this->oDatabase->update( "gtPersona", "dModificacion", Date("Y-m-d"), "WHERE", "ncPersona", $ncPersona );
			}
		}

	function setLevel()
		{
			switch ( $this->getOptionView() )
			{
				case 'E':
				case 'L':
					$this->aShowColumns = array( 'Nombre', 'ncRotulo' );
					break;
			}
		}
	function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'Persona_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			// Setea el titulo y la descripcion de la tabla
			$this->setTitle ( "Persona" );
			$this->setSummary( "Esta tabla contiene el listado de Personas" );
			$this->addColumn ( 'Nombre', '', 'cApellido');
			$this->aFields['aRotulo'] = is_array( getParam( 'aRotulo' ) )  ? implode(",", getParam( 'aRotulo' ) ): getParam( 'aRotulo' );
			$this->addColumnTag( 'ncRotulo', ACTUALIZAR_TAG_PERSONA2, 'ncPersona', 'gtPersonaRotulo', $this->oDatabase->getKeyArray('SELECT ncRotulo, cdRotulo FROM gtRotuloPersona' ) );
		}
	function makeColumn ( $aRow, $cField )
		{
			switch( $cField )
			{
				case 'Nombre':
				case 'DescriptionLookUp':
					$cReturn = $aRow['cNombre'] . ' ' . $aRow['cApellido'] ;
					break;
				case 'KeyLookUp':
					$cReturn = $aRow['ncPersona'];
					break;
				default:
					return false;
			break;
			}
			return $cReturn;
		}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT *
								FROM gtPersona AS Per";
			// Arma el Filtro de la Consulta				
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray('Per') );
				if ( $cNombre  ) $this->oWhere->addExpression ( "cdPersona",  "concat( ' ' , cNombre, ' ',  cApellido) LIKE '%$cNombre%' OR cPseudonimo LIKE '%$cNombre%' " );
			return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$cParametroRegistro =  $this->getFieldString();
			$this->addListAction ( AGREGAR_PERSONA2, $cParametroRegistro, 'I', VENTANA_SECUNDARIA  );
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro = "ncPersona=" . $aRow["ncPersona"];
			$this->addRowAction ( MODIFICAR_PERSONA2, $cParametroRegistro  );
			$this->addRowAction ( ELIMINAR_PERSONA2 ,  $cParametroRegistro );
		}
	}
?>